CVE-2015-9235
Jsonwebtoken RSA/ES Algorithm Bypass
Description
In jsonwebtoken node module before 4.2.2 it is possible for an attacker to bypass verification when a token digitally signed with an asymmetric key (RS/ES family) of algorithms but instead the attacker send a token digitally signed with a symmetric algorithm (HS* family).
INFO
Published Date :
May 29, 2018, 8:29 p.m.
Last Modified :
Nov. 21, 2024, 2:40 a.m.
Remotely Exploit :
Yes !
Source :
[email protected]
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 2.0 | HIGH | [email protected] | ||||
| CVSS 3.0 | CRITICAL | [email protected] |
Public PoC/Exploit Available at Github
CVE-2015-9235 has a 53 public
PoC/Exploit available at Github.
Go to the Public Exploits tab to see the list.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2015-9235.
| URL | Resource |
|---|---|
| https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ | Broken Link Vendor Advisory |
| https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687 | Patch Third Party Advisory |
| https://nodesecurity.io/advisories/17 | Third Party Advisory |
| https://www.timmclean.net/2015/02/25/jwt-alg-none.html | Exploit Third Party Advisory |
| https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ | Broken Link Vendor Advisory |
| https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687 | Patch Third Party Advisory |
| https://nodesecurity.io/advisories/17 | Third Party Advisory |
| https://www.timmclean.net/2015/02/25/jwt-alg-none.html | Exploit Third Party Advisory |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2015-9235 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2015-9235
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
A command line JWT security auditing tool
Python Dockerfile
This JWT Security Lab is designed to demonstrate real-world vulnerabilities in JSON Web Token (JWT) implementations and how to properly secure them.
Shell Dockerfile TypeScript
A comprehensive JWT attack CLI covering every major vulnerability class — from alg:none bypass to RS256→HS256 algorithm confusion, HMAC secret bruteforce, kid header injection (SQLi + path traversal), jku/x5u spoofing with built-in JWKS server, and full token forgery. Built for bug bounty hunters and red teamers.
algorithm-confusion bug-bounty-tools json-web-token jwt jwt-attacks jwt-security penetration-testing-tools token-forgery web-security
Python
None
Dockerfile HTML SCSS CSS JavaScript Java Python
Interactive lab demonstrating real-world JWT and OAuth2 vulnerabilities with exploit and patched modes.
Python
None
Dockerfile HTML SCSS CSS JavaScript Java Python
TokenComplianceFuzzer is a script that audits JWT security by checking for insecure settings (like the “none” algorithm) and testing HMAC secrets against weak passwords.
Python
A lightweight web tool to analyze JSON Web Tokens (JWT) and detect common security vulnerabilities.
HTML JavaScript CSS
🔐 JWT Security Analyzer — Decode, verify, brute-force, and test JWT tokens. Built with FastAPI + React + Tailwind. For authorized security testing & CTF only.
brute-force ctf cybersecurity docker fastapi hashcat jwt jwt-token nodejs penetration-testing python react security security-tools tailwindcss
Dockerfile Python JavaScript HTML CSS Shell Roff
CTF exercise based in session token forgery
ctf security token-forgery
Python HTML
AI-powered OWASP security learning platform — learn to hack, then fix. Built for NextDev Hackathon 2026.
Dockerfile Python HTML
JWT attack toolkit — alg:none, RS256 to HS256 confusion, key injection
appsec authentication jwt oauth security-research
Python
Demo of the algorithm confusion attack on various JWT libraries
Python JavaScript HTML CSS
None
Python
AI security MCP server and gate for Claude Code, Cursor, Copilot, Codex, and Replit
TypeScript JavaScript HCL
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2015-9235 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2015-9235 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by af854a3a-2127-422b-91ae-364da2661108
Nov. 21, 2024
Action Type Old Value New Value Added Reference https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ Added Reference https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687 Added Reference https://nodesecurity.io/advisories/17 Added Reference https://www.timmclean.net/2015/02/25/jwt-alg-none.html -
CVE Modified by [email protected]
May. 14, 2024
Action Type Old Value New Value -
CVE Modified by [email protected]
Oct. 09, 2019
Action Type Old Value New Value Added CWE HackerOne CWE-20 -
Initial Analysis by [email protected]
Jul. 09, 2018
Action Type Old Value New Value Added CVSS V2 (AV:N/AC:L/Au:N/C:P/I:P/A:P) Added CVSS V3 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Changed Reference Type https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687 No Types Assigned https://github.com/auth0/node-jsonwebtoken/commit/1bb584bc382295eeb7ee8c4452a673a77a68b687 Patch, Third Party Advisory Changed Reference Type https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ No Types Assigned https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ Broken Link, Vendor Advisory Changed Reference Type https://nodesecurity.io/advisories/17 No Types Assigned https://nodesecurity.io/advisories/17 Third Party Advisory Changed Reference Type https://www.timmclean.net/2015/02/25/jwt-alg-none.html No Types Assigned https://www.timmclean.net/2015/02/25/jwt-alg-none.html Exploit, Third Party Advisory Added CWE CWE-327 Added CPE Configuration OR *cpe:2.3:a:auth0:jsonwebtoken:*:*:*:*:*:node.js:*:* versions up to (excluding) 4.2.2 -
CVE Modified by [email protected]
May. 31, 2018
Action Type Old Value New Value Changed Description In jsonwebtoken node module before 4.2.2 it is possible for an attacker to bypass verification when a token digitally signed with an asymetric key (RS/ES family) of algorithms but instead the attacker send a token digitally signed with a symmetric algorithm (HS* family) In jsonwebtoken node module before 4.2.2 it is possible for an attacker to bypass verification when a token digitally signed with an asymmetric key (RS/ES family) of algorithms but instead the attacker send a token digitally signed with a symmetric algorithm (HS* family).